const app = getApp()
// 导入API工具
import { userAPI, orderAPI } from '../../utils/api';

Page({
  data: {
    isLoggedIn: false, // 是否已登录
    userInfo: null, // 用户信息
    orders: [], // 订单列表
    loading: false, // 加载状态
    page: 1, // 当前页码
    pageSize: 5, // 每页订单数量
    hasMoreOrders: true, // 是否有更多订单
    // 状态映射：英文转中文
    statusMap: {
      'pending': '待支付',
      'paid': '已支付',
      'shipped': '已发货',
      'completed': '已完成',
      'canceled': '已取消'
    }
  },
  
  onLoad: function() {
    console.log('我的页面加载');
  },
  
  onShow: function() {
    // 每次页面显示时检查登录状态
    this.checkLoginStatus();
  },
  
  // 检查登录状态
  checkLoginStatus: function() {
    const app = getApp();
    const token = app.globalData.token;
    const userInfo = app.globalData.userInfo;
    
    if (token && userInfo) {
      // 统一头像字段处理，兼容avatar和avatarUrl
      const processedUserInfo = {...userInfo};
      if (processedUserInfo.avatar && !processedUserInfo.avatarUrl) {
        processedUserInfo.avatarUrl = processedUserInfo.avatar;
      }
      
      // 确保头像路径正确（处理相对路径和绝对路径）
      if (processedUserInfo.avatarUrl && !processedUserInfo.avatarUrl.startsWith('http')) {
        // 如果是相对路径，添加基础URL
        processedUserInfo.avatarUrl = 'http://localhost:3001' + processedUserInfo.avatarUrl;
      }
      
      this.setData({
        isLoggedIn: true,
        userInfo: processedUserInfo
      });
      // 加载订单列表
      this.jiazai(true);
    } else {
      this.setData({
        isLoggedIn: false,
        userInfo: null,
        orders: []
      });
    }
  },
  
  // 更新用户信息
  updateUserInfo: function() {
    // 调用API获取用户信息
    userAPI.getUserInfo().then(res => {
      if (res.success) {
        // 统一头像字段处理，兼容avatar和avatarUrl
        const userInfo = res.data.userInfo;
        if (userInfo.avatar && !userInfo.avatarUrl) {
          userInfo.avatarUrl = userInfo.avatar;
        }
        
        // 确保头像路径正确（处理相对路径和绝对路径）
        if (userInfo.avatarUrl && !userInfo.avatarUrl.startsWith('http')) {
          // 如果是相对路径，添加基础URL
          userInfo.avatarUrl = 'http://localhost:3001' + userInfo.avatarUrl;
        }
        
        this.setData({
          userInfo: userInfo
        });
        // 更新全局用户信息
        getApp().globalData.userInfo = userInfo;
      }
    });
  },
  
  // 跳转到登录页面
  goToLogin: function() {
    wx.navigateTo({
      url: '/pages/login/login'
    });
  },
  
  
  // 加载订单列表
  jiazai: function(refresh = false) {
    // 如果是刷新，则重置页码和数据
    if (refresh) {
      this.setData({
        page: 1,
        orders: [],
        hasMoreOrders: true
      });
    }

    // 如果没有更多订单或正在加载，则不再请求
    if (!this.data.hasMoreOrders || this.data.loading) {
      wx.stopPullDownRefresh();
      return;
    }

    this.setData({ loading: true });

    orderAPI.getUserOrders(this.data.page, this.data.pageSize)
      .then(res => {
        console.log('获取订单列表成功:', res);
        
        if (res.success && res.data && res.data.orders) {
          // 处理订单数据，特别是图片路径
          const newOrders = res.data.orders.map(order => {
            // 确保goods_info是对象
            const goodsInfo = order.goods_info || {};
            
            // 如果goods_info是字符串，尝试解析为JSON对象
            let parsedGoodsInfo = goodsInfo;
            if (typeof goodsInfo === 'string') {
              try {
                parsedGoodsInfo = JSON.parse(goodsInfo);
              } catch (e) {
                console.error('解析商品信息失败:', e);
                parsedGoodsInfo = {};
              }
            }
            
            // 处理图片路径，确保显示正确
            let imageUrl = parsedGoodsInfo.image || '/images/placeholder.png';
            
            // 如果图片路径是相对路径且不以/开头，添加/前缀
            if (imageUrl && !imageUrl.startsWith('/') && !imageUrl.startsWith('http')) {
              imageUrl = '/' + imageUrl;
            }
            
            // 修复图片路径，确保与小程序中的路径匹配
            if (imageUrl && !imageUrl.startsWith('http') && !imageUrl.includes('/tabBar/') && !imageUrl.includes('/images/')) {
              // 如果图片路径不是完整URL，也不是已知的路径格式，使用tabBar下的默认图片
              imageUrl = '/pages/tabBar/home.png';
            }
            
            // 将英文状态转换为中文显示
            const status = order.status || 'pending';
            const chineseStatus = this.data.statusMap[status] || status;
            
            return {
              ...order,
              status: chineseStatus, // 使用中文状态
              originalStatus: status, // 保留原始状态用于逻辑判断
              goods_info: {
                ...parsedGoodsInfo,
                image: imageUrl
              }
            };
          });
          
          const orders = refresh ? newOrders : [...this.data.orders, ...newOrders];
          
          // 检查是否还有更多数据
          const hasMoreOrders = newOrders.length === this.data.pageSize;
          
          this.setData({
            orders: orders,
            hasMoreOrders: hasMoreOrders,
            page: this.data.page + 1
          });
        } else {
          wx.showToast({
            title: res.message || '获取订单列表失败',
            icon: 'none'
          });
        }
      })
      .catch(err => {
        console.error('获取订单列表失败:', err);
        wx.showToast({
          title: '获取订单列表失败，请稍后重试',
          icon: 'none'
        });
      })
      .finally(() => {
        this.setData({ loading: false });
        wx.stopPullDownRefresh();
      });
  },  
  // 跳转到订单详情页或填写地址页面
  goToOrderDetail: function(e) {
    const orderId = e.currentTarget.dataset.id;
    // 获取当前订单数据
    const order = this.data.orders.find(item => item.id === orderId);
    
    // 使用originalStatus字段进行逻辑判断
    if (order) {
      // 如果订单状态为'paid'（已支付），跳转到填写地址页面
      if (order.originalStatus === 'paid') {
        wx.navigateTo({
          url: `/pages/order-address/order-address?orderId=${orderId}`
        });
      }
      else if (order.originalStatus === 'completed') {
        // 已完成状态，显示提示信息
        wx.showModal({
          title:"订单已完成"
        })
      }
      else {
        // 其他状态保持原有逻辑，跳转到订单详情页
        wx.navigateTo({
          url: `/pages/order/order?orderId=${orderId}&fromOrderList=true`
        });
      }
    }
  },
  
  // 下拉刷新处理
  onPullDownRefresh: function() {
    console.log('我的页面下拉刷新');
    if (this.data.isLoggedIn) {
      this.jiazai(true);
    } else {
      wx.stopPullDownRefresh();
    }
  },
  
  // 上拉触底加载更多
  onReachBottom: function() {
    console.log('我的页面上拉触底');
    if (this.data.isLoggedIn) {
      this.jiazai();
    }
  },
  
  // 退出登录
  logout: function() {
    const app = getApp();
    
    wx.showModal({
      title: '确认退出',
      content: '确定要退出登录吗？',
      success: (res) => {
        if (res.confirm) {
          // 清除登录信息
          app.clearUserInfo();
          
          // 更新页面状态
          this.setData({
            isLoggedIn: false,
            userInfo: null,
            orders: []
          });
          
          wx.showToast({
            title: '退出成功',
            icon: 'success'
          });
        }
      }
    });
  },
  
  // 跳转到设置页面
  goToSettings: function() {
    wx.navigateTo({
      url: '/pages/settings/settings'
    });
  }
})
